#include"Mapper.h"

namespace sn
{
    class MapperGxROM : public Mapper
    {
    public:
        MapperGxROM(Cartridge &cart , std::function<void(void)> mirroring_cb);
        NameTableMirroring getNameTableMirroring();
        void writePRG(Address address, Byte value);
        Byte readPRG(Address address);
        const Byte *getPagePtr(Address address);
        Byte readCHR(Address address);
        void writeCHR(Address address, Byte value);
       Byte prgbank;
       Byte chrbank;
   

    private:
      NameTableMirroring m_mirroring;
       

      
     
      std::vector<Byte> m_characterRAM;
      std::function<void(void)> m_mirroringCallback;
        

    };
}
